<?php 

//①定义大量路径常量
define("__PUBLIC__",'./Public');        //公共资源:js\css
define("CONF_PATH", './Yphp/Conf');     //配置
define("CORE_PATH", './Yphp/Core');     //核心
define("LIB_PATH", './Yphp/Lib');       //

include_once CONF_PATH.'/001.php';











 
//②自动加载类

function __autoload($classname)
{
	$paths = array(
		CONTROLLRE_PATH.'/'.$classname.'.class.php',
		CORE_PATH.'/'.$classname.'.class.php',
		MODEL_PATH.'/'.$classname.'.class.php',
		);
	//var_dump($paths);
	foreach ($paths as $path) {
		if (file_exists($path)) {
			include $path;
			//var_dump($paths);
			return;
		}

	}
}














  
//③接收路径的参数去动态的调用不同功能


//路径重写部分
//var_dump($_SERVER['PATH_INFO']);
// $pathinfo = rtrim($_SERVER['PATH_INFO'],C('DEFAULT_SUFFIX'));
// $pathinfo = ltrim($pathinfo,'/');
// $arr = explode('/', $pathinfo);
// $module = ucfirst(strtolower($arr['0']));
// $controller = ucfirst(strtolower($arr['1']));
// $action = ucfirst(strtolower($arr['2']));
// exit;


//模块
$module = isset($_GET['m']) ? ucfirst(strtolower($_GET['m'])) : C('DEFAULT_MODULE');
//控制器
$controller = isset($_GET['c']) ? ucfirst(strtolower($_GET['c'])) : C('DEFAULT_CONTROLLRE');
//方法
$action = isset($_GET['a']) ? ucfirst(strtolower($_GET['a'])) : C('DEFAULT_ACTION');

define("MODULE_PATH", APP_PATH.'/'.$module);   			//已知访问的模块路径
define("CONTROLLRE_PATH", MODULE_PATH.'/Controller');	//已知访问的模块里面的控制器路径
define("MODEL_PATH", MODULE_PATH.'/Model');				//已知访问的模块里面的模型路径
define("VIEW_PATH", MODULE_PATH.'/View');				//已知访问的模块里面的视图路径

//父类Controller引入视图时要用的两个常量
define("CONTROLLRE_NAME", $controller);                 //控制器名
define("ACTION_NAME", $action);							//方法名

var_dump($module,$controller,$action);

//获得传参的控制器后 组成控制器类名 已便实例化使用
$controller = $controller.'Controller';
//调用相对应的控制器  当找不到类的时候会自动调用autoload方法找到
$obj = new $controller();
//调用相对应的方法
$obj->$action();


 
















 ?>